import redis
r = redis.Redis(host='localhost',port=6379,db=3,decode_responses=True)

# 1.字符串类型
print('字符串')
# 创建
r1 = r.set('name',10,ex=120)
# 获取
r2 = r.get('name')
# 设置指定的数据 判断
r3 = r.setex('Are you sure?',120,'Yes or No')
#只有在 key 不存在时设置 key 的值表判断
r4 = r.setnx('Yes,i`m,are you?','Emmmm....,i don`t know')
# 自增(要是value是字符串就不能用)
rr = r.incr('name',amount=1)
print(r2)
print('-----------分割-----------')
print(r3)
print('-----------分割-----------')
print(r4)
print('-----------分割-----------')
print(rr)
print('-----------分割-----------')

# 列表
print()
print('列表')
# 从左边插入
r.lpush('object','one')
r.lpush('object','three')
r.lpush('object','fore')
r.lpush('object','five')
r.rpush('object','two')
# 删除列表最后一位
r.rpop('object')
# 获取列表的长度
r.llen('object')
# 获取列表指定的区间
ret = r.lrange('object',0,5)
print(ret[::-1],len(ret))
print('-----------分割-----------')

# 哈希
print()
print('哈希')
# 插入哈希数据
r.hset('score','python',100)
r.hset('score','python1',70)
r.hset('score','python2',65)
r.hset('score','python3',76)
r.hset('score','python4',80)
# 获取哈希数据
r6 = r.hget('score','python')
# 删除指定的哈希数据
r7 = r.hdel('score','python')
# 获取所有的哈希key的值
r8 = r.hkeys('score')
# 获取哈希指定的key 的字段和值
r9 = r.hgetall('score')
print('-----------分割-----------')
print(r6)
print('-----------分割-----------')
print(r7)
print('-----------分割-----------')
print(r8)
print('-----------分割-----------')
print(r9)
print('-----------分割-----------')

# 集合
print()
print('集合')
r.sadd('key','memeber1','memeber2','memeber3','memeber4','memeber5','memeber6','one')
r.sadd('key1','memeber1','memeber2','one','two',';three')
# 返回集合所有数据
r10 = r.smembers('key')
# 获取集和的数量
r11 = r.scard('key')
# 删除一个或者多个元素
r12 = r.srem('key','memeber1')
# 返回集合的所有交集
r13 = r.sinter('key','key1')
# 返回集合所有并集
r14 = r.sunion('key','key2')
print(r10)
print('-----------分割-----------')
print(r11)
print('-----------分割-----------')
print(r12)
print('-----------分割-----------')
print(r13)
print('-----------分割-----------')
print(r14)
print('-----------分割-----------')

# 有序集合
print()
print('有序集合')
# 向有序集合添加数据
r.zadd('room',{'num101':10})
r.zadd('room1',{'num102':11})
r.zadd('room2',{'num103':12})
r.zadd('room3',{'num104':13})
r.zadd('room4',{'num105':14})
# 通过索引获取数据
r15 = r.zrange('room',0,3)
# 有序集合中对指定成员的分数加上增量 increment
r16 = r.zincrby('room',1,15)
# 移除有序集合中的一个或多个成员
r17 = r.zrem('room',1)
print(r15)
print('-----------分割-----------')
print(r16)
print('-----------分割-----------')
print(r17)
print('-----------分割-----------')